package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.BompTMMcFundInfo;

import java.util.List;

/**
 * 营销活动打款记录表数据库操作接口定义
 * Copy By [momp-TMMcFundInfoMapper]
 */

public interface BompTMMcFundInfoMapper {

    /**
     * 新增单条商户成功打款数据数据库操作接口定义
     *
     * @param tmMcFundInfo 营销活动打款记录表数据库操作实体类
     * @return int 返回
     * @throws Exception 异常信息
     */
    int insertSingleRecordForMchntFundInfo(BompTMMcFundInfo tmMcFundInfo) throws Exception;

    // /**
    //  * 取当前数据库最大记录顺序号数据库操作接口定义
    //  * 如果有记录,返回值大于等于0
    //  * 如果无数据或失败,返回值小于0;
    //  *
    //  * @author Jinan Liu
    //  * @date 2020/7/8 17:39
    //  * @param tmMcFundInfo 营销活动打款记录表数据库操作实体类
    //  * @return int 当前数据库最大记录顺序号
    //  * @throws Exception 异常信息
    // */
    // int checkMaxmiumRecordIndexInfo(BompTMMcFundInfo tmMcFundInfo) throws Exception;


    /**
     * 更新打款记录表
     *
     * @param tmMcFundInfo
     * @return 更新结果, 0-成功
     * @throws Exception 异常信息
     */
    int updateTMMcFundInfo(BompTMMcFundInfo tmMcFundInfo) throws Exception;

    /**
     * 根据机构标志+营销活动编号+付款方标识+付款方类型查询营销活动打款记录
     * 并根据创建时间降序排序
     *
     * @param instId        机构标志
     * @param mcNo          营销活动编号
     * @param payerAcctId   付款方标识
     * @param payerAcctType 付款方类型
     * @return 营销活动打款记录
     * @throws Exception 异常信息
     */
    List<BompTMMcFundInfo> selectBompTMMcFundInfoByInstIdAndMcNoAndDescByCreateTime(String instId, String mcNo, String payerAcctId, String payerAcctType) throws Exception;

}
